package AdministradorConfiguracion;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.HashMap;
import java.util.Map;

import DataBase.DBManager;
import DataBase.Resultado;

public class AdminConfiguracion {

	private Parser parser;
	private Map<Integer, Etapa> etapas;
	private DBManager manager;

	public AdminConfiguracion(DBManager manager) {
		this.manager = manager;
		etapas = new HashMap<Integer, Etapa>();
		try {
			File e = new File("./resources/Etapas");
			File l = new File("./resources/Listas");
			File c = new File("./resources/Candidatos");
			inicializar(e, l, c);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	public void inicializar(File todo, File listas, File candidatos)
			throws FileNotFoundException {
		parser = new Parser(this.etapas);
		parser.parsearEtapas(todo);
		parser.parsearListas(listas);
		parser.parsearCandidatos(candidatos);
		agregarCandidatosADB();
	}

	public int getCantEtapas() {
		return etapas.size();
	}

	public Etapa getEtapa(int etapa) {
		try {
			Etapa aleatorizada = etapas.get(new Integer(etapa));
			aleatorizada.shuffle();
			return aleatorizada;
		} catch (Exception e) {
			return null;
		}
	}

	public void agregarCandidatosADB() {
		for (Etapa e : etapas.values()) {
			for (Candidato c : e.getCandidatos()) {
				manager.insertPostulante(new Resultado(e.getNombre(), c
						.toString()));
			}
		}
	}

}